import {reqGetSearchInfo} from '@/api'
// search 模块小仓库
const state = {

    // 搜索
    // 不知道写什么类型，可先派发请求查看，知道之后再写。
    // 派发请求，在搜索页面，this.$store.dispatch('getSearchList',{});
    searchList: {}
}


const mutations = {

    // 搜索
    GETSEARCHLIST(state, searchList) {
        state.searchList = searchList
    }

}


const actions = {
    // 获取 search 模块数据
    // params 形参：是当用户派发 action 的时候，第二个参数传递过来的，至少是一个空对象
    async getSearchList({commit}, params = {}) {
        let result = await reqGetSearchInfo(params)
        if (result.code === 200) {
            commit("GETSEARCHLIST", result.data)
        }
    }
}

// 计算属性。在项目当中，简化仓库中的数据
const getters = {
    // 当前形参 state ，是当前仓库中的 state ，并非大仓库中的 state
    goodsList(state) {
        return state.searchList.goodsList || [];
        // pageNo  /  pageSize /  total  /  totalPages
    },

    trademarkList(state) {
        return state.searchList.trademarkList || [];
    },

    attrsList(state) {
        return state.searchList.attrsList || [];
    }
}

// 对外暴露
export default {
    state,
    mutations,
    actions,
    getters
}
